#pragma once
#ifndef RAYTRACER_H
#define RAYTRACER_H

#include <QImage>
#include "Vector3.h"

#include <iostream>

#define USE_MATH_DEFINES
#include <math.h>

#include "Color.h"
#include "Vector3.h"
#include "Ray.h"
#include "Object.h"
#include "Sphere.h"
#include "Scene.h"
#include "Light.h"
#include "Plane.h"
#include "Triangle.h"
#include "Quad.h"

#include <fstream>
using namespace std;

// store width and height of the render
const int width = 760;
const int height = 760;

class RayTracer {
public:
	RayTracer();
	~RayTracer();

	void init(Scene* s);
	void idle(vector<vector<Vector3> >& image);

private:
	Scene* scene;
};

#endif //RAYTRACER_H